<?php

include APPLICATION_PATH . "/models/Area.php";
include APPLICATION_PATH . "/models/Area_Province_Category.php";
include APPLICATION_PATH . "/models/Province.php";
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

class Admin_AreaController extends Zend_Controller_Action {

    public function init() {
        $bootstrap = $this->getInvokeArg("bootstrap");
        $this->aConfig = $bootstrap->getOptions();
        $this->view->aConfig = $this->aConfig;
        $this->model = new Model_Area();
        $this->modelMapper = new Model_AreaMapper();
        $this->APCmodelMapper = new Model_Area_Province_CategoryMapper();
        $this->Provincemodel = new Model_Province();
        $this->ProvincemodelMapper = new Model_ProvinceMapper();
    }

    public function addAction() {
        if ($this->getRequest()->isPost()) {
            $redirectUrl = $this->aConfig["site"]["url"] . "admin/area/index";
            if (isset($_POST["id"])) {
                $this->model->setId($_POST["id"]);
            }
            if (strlen($_POST["name_area"]) > 0) {
                $this->model->setName($_POST["name_area"]);
            }
            if (isset($_POST["order_area"])) {
                $this->model->setOrder($_POST["order_area"]);
            }
            if (isset($_POST["status_area"])) {
                $status = 1;
            } else {
                $status = 0;
            }
            $this->model->setStatus($_POST["status_area"]);
            $this->model->setCreated(date("Y/m/d H:i:s"));
            $this->model->setCreated_By(GlobalLib::getLoginId());
            $this->model->setModified(date("Y/m/d H:i:s"));
            $this->model->setModified_By(GlobalLib::getLoginId());
            $this->modelMapper->save($this->model);
            $this->_redirect($redirectUrl);
        }
        $this->view->item = $this->model;
    }

    public function indexAction() {
        
    }

    public function editAction() {
        $id = $this->_getParam("id", "");
        $this->view->itemm = $id;
        $redirectUrl = $this->aConfig["site"]["url"] . "admin/area/index";
        if (empty($id)) {
            $this->_redirect($redirectUrl);
        }
        $this->modelMapper->find($id, $this->model);
        $getId = $this->model->getId();
        if (empty($getId)) {
            $this->_redirect($redirectUrl);
        }
        if ($this->getRequest()->isPost()) {
            if (isset($_POST["id"])) {
                $this->model->setId($_POST["id"]);
            }
            if (strlen($_POST["name_area"]) > 0) {
                $this->model->setName($_POST["name_area"]);
            }
            if (isset($_POST["order_area"])) {
                $this->model->setOrder($_POST["order_area"]);
            }
            if (isset($_POST["status_area"])) {
                $status_area = 1;
            } else {
                $status_area = 0;
            }
            $this->model->setStatus($_POST["status_area"]);
            $this->model->setCreated(date("Y/m/d H:i:s"));
            $this->model->setCreated_By(GlobalLib::getLoginId());
            $this->model->setModified(date("Y/m/d H:i:s"));
            $this->model->setModified_By(GlobalLib::getLoginId());
            $this->modelMapper->save($this->model);
            $this->_redirect($redirectUrl);
        }
        $this->view->item = $this->model;
    }

    public function listAction() {
        $this->view->controller = $this;
        $this->view->item = $this->modelMapper->fetchAll();
    }

    public function serviceAction() {
        $this->_helper->layout->disableLayout();
       
        foreach ($this->APCmodelMapper->GetAreaProvince() as $items) {
            if($items->getId()==0){
                $province_name = "";
                $province_id=""; 
            } else {
                $this->ProvincemodelMapper->find($items->getProvince_Id(), $this->Provincemodel);
                $province_id=$this->Provincemodel->getId();
                $province_name = GlobalLib::getName("province", $province_id, 'name');
            }
            $menber[] = array(
                'id' => $items->getId(),
                'area_name' => GlobalLib::getName('area', $items->getArea_Id(), 'name') . '||' . $items->getArea_Id(),
                'province_name' => $province_name,
                'area_id' => $items->getArea_Id(),
                'province_id' => $province_id,
                'order_name'=>$items->getOrder()
            );
        }
        echo json_encode($menber);
        exit();
    }
    
    public function deleteAction(){
        $id= $this->_getParam("id","");
        $redirectUrl=$this->aConfig["site"]["url"]."admin/area/index";
        $this->APCmodelMapper->deletebyareaid($id);
        $this->modelMapper->delete($id);
        $this->_redirect($redirectUrl);
    }
}
